In computer operations, programming may commonly use program components. Components may include, but are not limited, to JavaBeans for Java operations. Java operations may include operations under the J2EE (Java 2 Platform, Enterprise Edition) environment. Java beans include enterprise JavaBeans (EJBs), where Enterprise JavaBean technology is the server-side component architecture established for the J2EE platform. The operation of enterprise JavaBeans are defined by the Enterprise JavaBeans Specification, Version 2.1, Final Release Nov. 12, 2003 (Release: Nov. 24, 2003), the Enterprise JavaBeans Specification, Version 3.0 Proposed Final Draft, Dec. 19, 2005 (Release: Dec. 21, 2005), and subsequent standards (referred to herein jointly as the “EJB specification”).
In utilizing program components, it may be useful to implement timers such that the operation of a component may be subject to a timeout after a certain time period. The timers may be implemented in, for example, a timer service. In one example, a timer service may be provided to register an EJB for a timer callback, which may, for example, occur at a specified time, after a specified elapsed time, or at specified time intervals. The implementation of timers may include an implementation by an EJB container as provided in the EJB specification.
However, conventional timer implementations for components, including EJB timer systems, have certain drawbacks in operation. Certain implementations may be inefficient and overly complex. For example, a timer for a component may be generated as another program component, with the timer service normally persisting timers in a database. In such system, the program code or module that is responsible for a timeout notification is generally decoupled from the program code or module that is responsible for the timer persistence. Further, in certain processes the persistence of timers is used to provide fault tolerant operation because the process does not include a failover facility.